package com.xiaoh.dormitoryrepairreportbackend.model.dto.user;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import java.io.Serializable;

/**
 * 管理员更新用户请求
 */
@Data
@Schema(description = "管理员更新用户请求")
public class UserAdminUpdateRequest implements Serializable {

    /**
     * 用户ID
     */
    @Schema(description = "用户ID", required = true)
    @NotNull(message = "用户ID不能为空")
    private Long id;

    /**
     * 用户昵称
     */
    @Schema(description = "用户昵称")
    private String nickName;

    /**
     * 邮箱
     */
    @Schema(description = "邮箱")
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 手机号码
     */
    @Schema(description = "手机号码")
    @Pattern(regexp = "^1[3-9]\\d{9}$", message = "手机号格式不正确")
    private String phoneNumber;

    /**
     * 用户类型（1:学生, 2:维修工, 3:管理员）
     */
    @Schema(description = "用户类型（1:学生, 2:维修工, 3:管理员）")
    private Integer userType;

    /**
     * 宿舍地址（仅学生用户）
     */
    @Schema(description = "宿舍地址（仅学生用户）")
    private String dormitoryName;

    private static final long serialVersionUID = 1L;
}
